#ifndef ODBC_DETAILS_CONNECTION_VISITOR_HPP
#define ODBC_DETAILS_CONNECTION_VISITOR_HPP

namespace odbc { namespace details
{

/// \ingroup odbcpp
/// \private
/// \brief Utility class, allowing subclasses to access the internal ODBC API handle of a connection.
///	\param Connection the connection type that provides the handle member. It should implement the connection concept.
/// \details
///		This connection visitor is declared as a friend of the connnection class given as template parameter, for 
///		accessing its internals.
template< class Connection>
class connection_visitor
{
	// TODO: Connection concept check
public:
	static SQLHANDLE get_handle( const Connection& conn) { return conn.handle_; }
};


} } // namespace details // namespace odbc

#endif // ODBC_DETAILS_CONNECTION_VISITOR_HPP
